/*
** unnamed.h for some_project in /home/guina_b/
** 
** Made by benoit guina
** Login   <guina_b@epitech.net>
** 
** Started on  Fri Jan 01 00:00:00 2010 benoit guina
** Last update Fri Jan 01 00:00:00 2010 benoit guina
*/

#ifndef H_TOKEN_TYPE
#define H_TOKEN_TYPE

typedef enum e_token_type_idx
{
  TOKEN_TILDE,          /* ~  -> home                 */
  TOKEN_ASTERISK,       /* *  -> wildcard             */
  TOKEN_QUESTION,       /* ?  -> char wildcard        */
  TOKEN_EXCLAMATION,    /* !  -> history              */
  TOKEN_DOLLAR,         /* $  -> variable             */
  TOKEN_PAREN_L,        /* (  -> subshell start       */
  TOKEN_PAREN_R,        /* )  -> subshell end         */
  TOKEN_DOUBLE_AND,     /* && -> AND w/ exit status   */
  TOKEN_DOUBLE_OR,      /* || -> OR w/ exit status    */
  TOKEN_DOUBLE_LESSER,  /* << -> input from stdin     */
  TOKEN_DOUBLE_GREATER, /* >> -> output app to file   */
  TOKEN_AND,            /* &  -> bg job               */
  TOKEN_OR,             /* |  -> piped output         */
  TOKEN_LESSER,         /* <  -> input from file      */
  TOKEN_GREATER,        /* >  -> output trunc to file */
  TOKEN_TEXT,
  TOKEN_TYPES_TOTAL
} e_token_type_idx;

typedef struct s_token_type
{
  char *sym;
  int len;
} t_token_type;

t_token_type *token_types_get();
t_token_type *token_type_identify(char *s, int pos);

#endif
